# main.py
from src.query_processor import QueryProcessor
from config.config import API_ENDPOINT, MODEL_NAME
from src.session_manager import SessionManager

def main():
    # 初始化会话管理器
    session_manager = SessionManager()
    
    while True:
        # 获取用户输入
        user_input = input("请输入您的查询内容（输入 'exit' 结束对话）: ")

        if user_input.lower() == 'exit':
            print("结束对话。")
            break

        data_file = "my_query_project/tests/data/Affairs.csv"
        explanation_file = "my_query_project/tests/data/Explanations.csv"
        api_endpoint = API_ENDPOINT
        model_name = MODEL_NAME

        # 初始化 QueryProcessor 并传递对话历史
        processor = QueryProcessor(user_input, data_file, api_endpoint, model_name, explanation_file)
        
        # 处理用户输入
        processor.process()

        # 检查是否生成了 result_presenter 对象
        if processor.result_presenter:
            session_manager.add_to_history(user_input, processor.result_presenter.result)
        else:
            # 如果是 no_code 响应，将模型的自然语言响应保存到历史记录中
            session_manager.add_to_history(user_input, "no_code")

        session_manager.save_memory()  # 保存会话历史到文件或数据库

if __name__ == "__main__":
    main()




